package week02

// 111. 二叉树的最小深度
// https://leetcode-cn.com/problems/minimum-depth-of-binary-tree/


// 注意：左右子树任意一棵不存在，不代表深度为0，应该取存在的子树深度作为当前树深度

func minDepth(root *TreeNode) int {
	if root == nil {
		return 0
	}
	if root.Left == nil {
		return minDepth(root.Right) + 1
	}
	if root.Right == nil {
		return minDepth(root.Left) + 1
	}
	return min(minDepth(root.Left), minDepth(root.Right)) + 1
}

func min(x, y int) int {
	if x > y {
		return y
	}
	return x
}


type TreeNode struct {
	Val int
	Left *TreeNode
	Right *TreeNode
}
